//Cipher Class Header
////Graham Foster
////Header file for cipher class for cipher solver

#ifndef CIPHER_H_
#define CIPHER_H_

#include <iostream>
#include <fstream>
#include <string>
#include "key.h"

class Cipher
{
	public:
		//char solution[200]; //solution, work in progress, this should be removed, I think

		int newCipher(); //allows keyboard input of new cipher
		int loadCipher(char*); //loads cipher, and possibly progress from files
		int saveCipher(char*); //saves cipher and progress
		void printCipher(Key); //print out cipher and solution so far
		void printFreq(); //print all cipher element values and frequencies
		char* getString(); //returns the ciphertext
		
	private:
		int length;
		char string[200]; //cipher itself
		bool punctuation; //is punctuation part of the cipher
		bool numbers; //are numbers part of the cipher
		bool caseSensitive; //is the cipher case sensitive
		//char spanChars[maxKeySize]; //set of all characters used in the cipher
		void calcFreq(int[]); //calculates the frequency of each character and puts them in a list
};

#endif
